/**
 * 历史数据
 * @author wangying
 * @date 20160309
 */
var jq=jQuery.noConflict();
var waterPlantCode;//水厂编码
var waterPlantName;//水厂名称
var dataSource;
var dataType;
var dataTypeNo;//没有单位
var stationName;
var beginTime, endTime;

jQuery(document).ready(function()
{	
	waterPlantCode = parent.waterPlantCode;
	waterPlantName = parent.waterPlantName;
	getAllChooseType();//所有数据类型
	getHisDateOfWaterLevel();	
});



/**
 * 根据数据源选择显示和不显示站点
 */
function selectSourceChange()
{
	var selectSource = document.getElementById('selectSource');
	dataSource = selectSource.value;
	if(dataSource=="厂区")
	{
		jq('#stationSelectName').hide();
		jq('#stationSelect').hide();
		getAllWaterPlantType();
	}
	else if(dataSource=="管网")
	{
		jq('#stationSelectName').show();
		jq('#stationSelect').show();
		
		jq.ajax({			
			url:'../MonitorData/GetAllStationnumpositionAction.action?waterPlantCode='+waterPlantCode,
			type:'POST',
			data:"{}",
			dataType:'json',
			success:function (data)
			{  
				if(data.length>0)
				{
					var option="";
					jq.each(data,function(index,content)
					{
						option +="<option value="+content.stationnum+">"+content.positionname+"</option>" ; 			
					});
					
					document.getElementById("selectStation").innerHTML=option;
				}
				 
			}
		});
		getCommonType();
	}
}
/**
 * 所有类型
 */
function getAllChooseType()
{
	var selectSource = document.getElementById('selectSource');
	dataSource = selectSource.value;
	if(dataSource=="厂区")
	{
		getAllWaterPlantType();
		
	}
	else if(dataSource=="管网")
	{
		getCommonType();
		
	}
	
}
function getAllWaterPlantType()
{	
	jq.ajax({			
		url:'../MonitorData/GetAllTypeName.action',
		type:'POST',
		data:"{}",
		dataType:'json',
		success:function (data)
		{  
			
			if(data.length>0)
			{	
				var optionIn="";
				jq.each(data,function(index,content)
				{
					//去掉单位
					optionIn +="<option value="+content+">"+content+"</option>" ; 			
				});		
				document.getElementById("selectType").innerHTML=optionIn;
				
			}
		}
	});
}

/**
 * 得到所有的数据类型
 */
function getCommonType()
{
	
	jq.ajax({			
		url:'../MonitorData/GetAllCommonType.action',
		type:'POST',
		data:"{}",
		dataType:'json',
		success:function (data)
		{  
			if(data.length>0)
			{
				
				var optionIn="";
				jq.each(data,function(index,content)
				{
					//去掉单位
					optionIn +="<option value="+content.type+">"+content.type.split("(")[0]+"</option>" ; 			
				});
								
				//历史界面
				document.getElementById("selectType").innerHTML=optionIn;
				
			}
		}
	});
}

/**
 * 根据选择的查询时间获取数据
 */
function getHisDateOfWaterLevel()
{
	jq("#waterInfoBotton").click(function()
	{
		
		beginTime = jq('#beiginTimeOfWaterLevel').val();
		endTime = jq('#endTimeOfWaterLevel').val();
		var begin =beginTime+" 00:00:00";
		var end = endTime+" 00:00:00";
		var distanceTime =(Date.parse(end)-Date.parse(begin))/3600/1000;
		
		if(beginTime==null || beginTime.trim()=="")
		{
			alert("必须输入起始时间！！");
			return;
		}
		else if(endTime==null || endTime.trim()=="")
		{
			var date = new Date;
			endTime = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
		}
		
		else if(distanceTime<0)
		{
			alert("起始时间必须小于等于结束时间！！");
			return;
		}
		
		var selectType = document.getElementById('selectType');
		dataType = selectType.value;
		var dataTypeIndex=selectType.selectedIndex ; 
		dataTypeNo=selectType.options[dataTypeIndex].text;
		jq("#valueTypeInTable").html(dataType);//更改表格列名;
		
		var selectSource = document.getElementById('selectSource');
		dataSource = selectSource.value;
		if(dataSource=="厂区")
		{
			jq("#waterStationNameId").html(waterPlantName+dataSource+dataTypeNo+"表");
			jq("#highChartsName").html(waterPlantName+dataSource+dataTypeNo+"折线图");
			
			getWaterPlantData();//厂区历史数据
		}
		else if(dataSource=="管网")
		{			
			
			var selectStation = document.getElementById('selectStation');
			stationName=selectStation.value;
			var index=selectStation.selectedIndex ; 
			
			
			jq("#waterStationNameId").html(waterPlantName+selectStation.options[index].text+dataTypeNo+"表");
			jq("#highChartsName").html(waterPlantName+selectStation.options[index].text+dataTypeNo+"折线图");
			getStationData();//管网历史数据
		}
		
			
	});
}
//水厂历史数据
function getWaterPlantData()
{
	
	jq.ajax({			
		url:'../MonitorData/GetWatetPlantData.action?waterPlantCode='+waterPlantCode+"&type="+dataTypeNo+"&beginTime="+beginTime+"&endTime="+endTime,
		type:'POST',
		data:"{}",
		dataType:'json',
		success:function (data)
		{  
		
		if(data==null || data.length==0)
		{
			jq('#waterLevelData').hide();
			jq('#noData').show();
		}
		else
		{
			jq('#waterLevelData').show();
			jq('#noData').hide();
			
			jq("#waterLevleInfoTable").bootstrapTable('load',data);//表格
			
			var dataValue = [];
			jq.each(data,function(index,content)
			{
					var timestamp = Date.parse(content.time);
					dataValue.push([timestamp,Number(content.value)]);	
			});
			showDataHighCharts(dataValue);//图形
		}
		}		
     });  
}
//管网历史数据
function getStationData()
{
	jq.ajax({			
		url:'../MonitorData/GetHistoryDataByIdType.action?id='+stationName+"&type="+dataTypeNo+"&beginTime="+beginTime+"&endTime="+endTime,
		type:'POST',
		data:"{}",
		dataType:'json',
		success:function (data)
		{  
		if(data==null || data.length==0)
		{
			jq('#waterLevelData').hide();
			jq('#noData').show();
		}
		else
		{
			jq('#waterLevelData').show();
			jq('#noData').hide();
			
			jq("#waterLevleInfoTable").bootstrapTable('load',data);//表格加载数据
			
			var dataValue = [];
			jq.each(data,function(index,content)
			{
					var timestamp = Date.parse(content.time);
					dataValue.push([timestamp,Number(content.value)]);	
			});
			showDataHighCharts(dataValue);
		}
		}		
     });  
}
/**
 * 图形
 * @param dataValue
 */
function showDataHighCharts(dataValue)
{
	jq("#waterInfoContainer").highcharts(
		{
			chart:{
				type:'line',
				events:
					{
					load: function () {
						DynamicChangeParams();
						}
					}
			},
			title:
			{
				text:""
			},
			tooltip: 
			{
				xDateFormat: '%Y-%m-%d %H:%M:%S',
	            shared: true
	        },
	       
			xAxis:
			{
				title: {
	                text: '时间'
	            },
	            endOnTick: true,
	            startOnTick: true,
	            type: 'datetime',  
			},
	        plotOptions:
	        	{
	        	 column:
	        		 {
	        		 borderWidth:0,
	        		 borderColor: " ",
	        		 }
	        	},
	        series: [{ 
	            color: '#00FF00',	            
	            data: dataValue, 
	            marker: {
                    enabled: true
           	 	},
			}			
			]
		},function(chartObj)
		{
			chart = chartObj;
		});
}

function DynamicChangeParams()
{
	beginTime = jq('#beiginTimeOfWaterLevel').val();
	endTime = jq('#endTimeOfWaterLevel').val();
	var begin =beginTime+" 00:00:00";
	var end = endTime+" 00:00:00";
	var distanceTime =(Date.parse(end)-Date.parse(begin))/3600/1000;
	//x轴显示间隔，一天就按小时，多天就按天
	if(distanceTime==0)
	{
		chart.xAxis[0].update({
			labels: {    
                formatter: function () {      
                	return Highcharts.dateFormat('%H:%M', this.value); 
                }  
            } , 
            minTickInterval: 1 * 3600 * 1000,//间隔值
            });
	}
	else 
	{
		chart.xAxis[0].update({
			labels: {    
            formatter: function () {      
            	return Highcharts.dateFormat('%Y-%m-%d', this.value); 
            	}  
			} , 
			minTickInterval: 24 * 3600 * 1000,//间隔值
        	});
	}
	//y轴说明
	chart.yAxis[0].update({
		labels: { 
			formatter: function() {
		        return this.value;
		    }
		},
		title: {
            text: dataType
        }
	});
	
	chart.series[0].update({
        name:dataType});
	
	if(dataTypeNo=="压力" && dataSource=="管网")
	{
		
		chart.yAxis[0].update({
			min:0,
			max:1,
	        plotLines:[{
	            color:'red',           //线的颜色，定义为红色
	            dashStyle:'solid',     //默认值，这里定义为实线
	            value:0.5,               //定义在那个值上显示标示线，这里是在x轴上刻度为3的值处垂直化一条线
	            width:2 ,           //标示线的宽度，2px
	            label:{
	                text:'最大压力:0.5MPa',     //标签的内容
	                align:'right',                //标签的水平位置，水平居左,默认是水平居中center
	                x:10                         //标签相对于被定位的位置水平偏移的像素，重新定位，水平居左10px
	            }
	        },{
	        	color:'yellow',           //线的颜色，定义为红色
	            dashStyle:'solid',     //默认值，这里定义为实线
	            value:0,               //定义在那个值上显示标示线，这里是在x轴上刻度为3的值处垂直化一条线
	            width:2  ,              //标示线的宽度，2px
	            label:{
	                text:'最小压力:0MPa',     //标签的内容
	                align:'right',                //标签的水平位置，水平居左,默认是水平居中center
	                x:10                         //标签相对于被定位的位置水平偏移的像素，重新定位，水平居左10px
	            }
	        }]
			});
	}
		
	else if(dataTypeNo.indexOf("浊度")!=-1 && dataSource=="管网")
	{
		chart.yAxis[0].update({
			min:0,
			max:1.5,
	        plotLines:[{
	            color:'red',           //线的颜色，定义为红色
	            dashStyle:'solid',     //默认值，这里定义为实线
	            value:1.0,               //定义在那个值上显示标示线，这里是在x轴上刻度为3的值处垂直化一条线
	            width:2,			//标示线的宽度，2px
	            label:{
	                text:'最大浊度:1NTU',     //标签的内容
	                align:'right',                //标签的水平位置，水平居左,默认是水平居中center
	                x:10                         //标签相对于被定位的位置水平偏移的像素，重新定位，水平居左10px
	            }
	        }]
			
			});
	}
	else if(dataTypeNo=="余氯" && dataSource=="管网")
	{
		chart.yAxis[0].update({
			min:0,
	        plotLines:[{
	        	color:'yellow',           //线的颜色，定义为红色
	            dashStyle:'solid',     //默认值，这里定义为实线
	            value:0.03,               //定义在那个值上显示标示线，这里是在x轴上刻度为3的值处垂直化一条线
	            width:2,                //标示线的宽度，2px
	            label:{
	                text:'最小余氯:0.03mg/L',     //标签的内容
	                align:'right',                //标签的水平位置，水平居左,默认是水平居中center
	                x:10                         //标签相对于被定位的位置水平偏移的像素，重新定位，水平居左10px
	            }
	        }]
			});
	}
	
}


